home *** CD-ROM | disk | FTP | other *** search
/ Aminet 37 / Aminet 37 (2000)(Schatztruhe)[!][Jun 2000].iso / Aminet / game / patch / jst32b_dev.lha / jst_dev / sources / src / DiskTools / macros.i < prev    next >
Text File  |  2000-03-31  |  3KB  |  140 lines

  1. ; ** currently used disk sizes
  2.  
  3. STD_DISK_SIZE = 901120    ; standard dos copiable disks
  4. B12_DISK_SIZE = 970752    ; 12 sectored 79 tracks disks, dos bootblock
  5. S12_DISK_SIZE = 983040    ; 12 sectored 79 tracks disks, dos bootblock
  6.  
  7. ; ** joypad button definitions (for JoyButtonsState)
  8.  
  9. ; ** masks
  10.  
  11. AFF_FIRE1 = $20        ; red joypad button
  12. AFF_START = $01        ; start/pause joypad button
  13. AFF_FIRE2 = $40        ; blue joypad button
  14. AFF_FIRE4 = $08        ; green joypad button
  15. AFF_FIRE3 = $10        ; yellow joypad button
  16. AFF_FORWD = $04        ; forward joypad key
  17. AFF_BACWD = $02        ; back joypad key
  18.  
  19. ; ** bits
  20.  
  21. AFB_START = $0        ; start/pause joypad button
  22. AFB_BACWD = $1        ; back joypad key
  23. AFB_FORWD = $2        ; forward joypad key
  24. AFB_FIRE4 = $3        ; green joypad button
  25. AFB_FIRE3 = $4        ; yellow joypad button
  26. AFB_FIRE1 = $5        ; red joypad button
  27. AFB_FIRE2 = $6        ; blue joypad button
  28.  
  29.  
  30. STORE_REGS: MACRO
  31.     movem.l    D0-D7/A0-A6,-(A7)
  32.     ENDM
  33.  
  34. RESTORE_REGS: MACRO
  35.     movem.l    (A7)+,D0-D7/A0-A6
  36.     ENDM
  37.  
  38. JSRGEN:MACRO
  39.     move.l    A5,-(sp)
  40.     move.l    _general_pbuffer(PC),A5
  41.     add.l    #_\1,A5
  42.     sub.l    #_GeneralPatchRoutines,A5
  43.     JSR    (A5)
  44.     move.l    (sp)+,A5
  45.     ENDM
  46.  
  47. JMPGEN:MACRO
  48.     move.l    _general_pbuffer(PC),A5
  49.     add.l    #_\1,A5
  50.     sub.l    #_GeneralPatchRoutines,A5
  51.     JMP    (A5)
  52.     ENDM
  53.  
  54. GETGENADDR:MACRO
  55.     move.l    _general_pbuffer(PC),D0
  56.     add.l    #_\1,D0
  57.     sub.l    #_GeneralPatchRoutines,D0
  58.     ENDM
  59.  
  60. WAIT_LMB: MACRO
  61. wl\@
  62.     btst    #6,$BFE001
  63.     bne    wl\@
  64.     ENDM
  65.  
  66. ; ******* Macro Printf ********
  67. ; Mac_printf "text"   -> text + linefeed
  68. ; Mac_printf "text",*any argument* -> text without linefeed
  69.  
  70. Mac_printf: MACRO
  71.     move.l    A1,-(A7)
  72.     lea    text\@$(PC),A1
  73.     JSRABS    Display
  74.     bra    ftext\@$
  75. text\@$
  76.     dc.b    \1
  77.     IFLE    NARG-1
  78.     dc.b    10,13
  79.     ENDC
  80.     dc.b    0
  81.     even
  82. ftext\@$
  83.     move.l    (A7)+,A1
  84.     ENDM
  85.  
  86. PUTS: MACRO
  87.     move.l    A1,-(A7)
  88.     move.l    \1,A1
  89.     JSRABS    Display
  90.     move.l    (A7)+,A1
  91.     ENDM
  92.  
  93. NEWLINE: MACRO
  94.     move.l    A1,-(A7)
  95.     lea    text\@$(PC),A1
  96.     JSRABS    Display
  97.     bra    ftext\@$
  98. text\@$
  99.     dc.b    10,13,0
  100.     even
  101. ftext\@$
  102.     move.l    (A7)+,A1
  103.     ENDM
  104.  
  105.  
  106.  
  107. JSRABS:MACRO
  108.     jsr    _\1
  109.     ENDM
  110.  
  111. JMPABS:MACRO
  112.     jmp    _\1
  113.     ENDM
  114.  
  115. STOP_SOUND:MACRO
  116.     move.l    A5,-(sp)
  117.     lea    $DFF000,A5
  118.     move.w    #$0000,aud0+ac_len(A5)
  119.     move.w    #$0000,aud1+ac_len(A5)
  120.     move.w    #$0000,aud2+ac_len(A5)
  121.     move.w    #$0000,aud3+ac_len(A5)        ; shhhhht
  122.  
  123.     move.w    #$0000,aud0+ac_vol(A5)
  124.     move.w    #$0000,aud1+ac_vol(A5)
  125.     move.w    #$0000,aud2+ac_vol(A5)
  126.     move.w    #$0000,aud3+ac_vol(A5)        ; shhhhht
  127.     move.l    (sp)+,A5
  128.     ENDM
  129.  
  130. RELOCATE_GEN:MACRO
  131.     movem.l    D0/A0/A1,-(sp)
  132.     move.l    _general_pbuffer,D0    ; in the user code
  133.     add.l    #\1,D0
  134.     sub.l    #_GeneralPatchRoutines,D0
  135.     move.l    D0,A0
  136.     move.l    #\1,A1        ; to be sure to get absolute address.
  137.     move.l    (A1),(A0)    ; relocation in the general patch routines zone.
  138.     movem.l    (sp)+,D0/A0/A1
  139.     ENDM
  140.